<?php
App::uses('AppController', 'Controller');
/**
 * Usuarios Controller
 *
 * @property Usuario $Usuario
 * @property SessionComponent $Session
 */
class UsuarioController extends AppController {
    
    public function beforeFilter() {
        parent::beforeFilter();
        $this->Auth->allow("adicionarEtapa1", "adicionarCurriculo", "adicionarBolsa", "login");
    }

/**
 * index method
 *
 * @return void
 */
	public function index() {
		$this->Usuario->recursive = 0;
		$this->set('usuarios', $this->paginate());
	}

/**
 * view method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
	public function visualizar($id = null) {
		if (!$this->Usuario->exists($id)) {
			throw new NotFoundException(__('Invalid usuario'));
		}
		$options = array('conditions' => array('Usuario.' . $this->Usuario->primaryKey => $id));
		$this->set('usuario', $this->Usuario->find('first', $options));
	}

/**
 * add method
 *
 * @return void
 */
	public function adicionarEtapa1() {
		if ($this->request->is('post')) {
			$this->Usuario->create();
			if ($this->Usuario->save($this->request->data)) {
				$this->Session->setFlash(__('The usuario has been saved'));
                                if($this->request->data['Usuario']['tipo'] == 1){
                                    $this->redirect(array('action' => 'adicionarCurriculo', $this->Usuario->id));
                                }else{
                                    $this->redirect(array('action' => 'adicionarBolsa', $this->Usuario->id));
                                }				
			} else {
				$this->Session->setFlash(__('O usuário não pode ser salvo, por favor tente novamente.'));
			}
		}
	}
        
/**
 * add method
 *
 * @return void
 */
	public function adicionarCurriculo($id = null) {
		if ($this->request->is('post') || $this->request->is('put')) {
			if ($this->Usuario->save($this->request->data)) {
                                $this->loadModel("LinguaUsuario");
                                //Corrigir a ação de deletar as relações ao chegar em casa
                                $this->LinguaUsuario->deleteAll(array("LinguaUsuario.usuario_id" => $id));
                                $this->request->data['LinguaUsuario']['usuario_id'] = $this->Usuario->id;
                                $this->request->data['LinguaUsuario']['lingua_id'] = $this->request->data['Usuario']['lingua_1'];                                
                                $this->LinguaUsuario->save($this->request->data);
                                $this->LinguaUsuario->id = null;
                                $this->request->data['LinguaUsuario']['usuario_id'] = $this->Usuario->id;
                                $this->request->data['LinguaUsuario']['lingua_id'] = $this->request->data['Usuario']['lingua_2'];
                                $this->Session->setFlash("Curriculum adicionado com Sucesso!");
                                $this->LinguaUsuario->save($this->request->data);
			} else {
				$this->Session->setFlash(__('O usuário não pode ser salvo, por favor tente novamente.'));
			}
		}
                
                $this->loadModel("GrauDeEnsino");
                $grau_de_ensino = $this->GrauDeEnsino->find("list", array("conditions" => array("GrauDeEnsino.status" => 1)));
                $this->loadModel("Curso");
                $cursos = $this->Curso->find("list", array("conditions" => array("Curso.status" => 1)));
                $this->loadModel("Lingua");
                $linguas = $this->Lingua->find("list", array("conditions" => array("Lingua.status" => 1)));
                $this->loadModel("Periodo");
                $periodos = $this->Periodo->find("list", array("conditions" => array("Periodo.status" => 1)));
                
                $this->set("graus_de_ensino", $grau_de_ensino);
                $this->set("linguas", $linguas);
                $this->set("cursos", $cursos);
                $this->set("periodos", $periodos);
                $this->set("usuario_id", $id);
                
                $options = array('conditions' => array('Usuario.' . $this->Usuario->primaryKey => $id));
                $this->request->data = $this->Usuario->find('first', $options);
	}
        
/**
 * add method
 *
 * @return void
 */
	public function adicionarBolsa($usuario_id = null) {
		if ($this->request->is('post') || $this->request->is('put')) {
                        $this->loadModel("Bolsa");
			if ($this->Bolsa->save($this->request->data)) {
                            $this->Session->setFlash("Bolsa adicionado com Sucesso!");
			} else {
                            $this->Session->setFlash(__('O usuário não pode ser salvo, por favor tente novamente.'));
			}
		}
                
                $this->loadModel("GrauDeEnsino");
                $grau_de_ensino = $this->GrauDeEnsino->find("list", array("conditions" => array("GrauDeEnsino.status" => 1)));
                $this->loadModel("Curso");
                $cursos = $this->Curso->find("list", array("conditions" => array("Curso.status" => 1)));
                $this->loadModel("Lingua");
                $linguas = $this->Lingua->find("list", array("conditions" => array("Lingua.status" => 1)));
                $this->loadModel("Periodo");
                $periodos = $this->Periodo->find("list", array("conditions" => array("Periodo.status" => 1)));
                $this->loadModel("TipoBolsa");
                $tipos_bolsa = $this->TipoBolsa->find("list", array("conditions" => array("TipoBolsa.status" => 1)));
                
                $this->set("graus_de_ensino", $grau_de_ensino);
                $this->set("linguas", $linguas);
                $this->set("cursos", $cursos);
                $this->set("periodos", $periodos);
                $this->set("tipos_bolsa", $tipos_bolsa);
                $this->set("usuario_id", $usuario_id);
	}

/**
 * edit method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
	public function editar($id = null) {
		if (!$this->Usuario->exists($id)) {
			throw new NotFoundException(__('Invalid usuario'));
		}
		if ($this->request->is('post') || $this->request->is('put')) {
			if ($this->Usuario->save($this->request->data)) {
				$this->Session->setFlash(__('The usuario has been saved'));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The usuario could not be saved. Please, try again.'));
			}
		} else {
			$options = array('conditions' => array('Usuario.' . $this->Usuario->primaryKey => $id));
			$this->request->data = $this->Usuario->find('first', $options);
		}
		$grauDeEnsinos = $this->Usuario->GrauDeEnsino->find('list');
		$cursos = $this->Usuario->Curso->find('list');
		$periodos = $this->Usuario->Periodo->find('list');
		$linguas = $this->Usuario->Lingua->find('list');
		$tipoUsuarios = $this->Usuario->TipoUsuario->find('list');
		$usuarios = $this->Usuario->Usuario->find('list');
		$this->set(compact('grauDeEnsinos', 'cursos', 'periodos', 'linguas', 'tipoUsuarios', 'usuarios'));
	}

/**
 * delete method
 *
 * @throws NotFoundException
 * @param string $id
 * @return void
 */
	public function excluir($id = null) {
		$this->Usuario->id = $id;
		if (!$this->Usuario->exists()) {
			throw new NotFoundException(__('Invalid usuario'));
		}
		$this->request->onlyAllow('post', 'delete');
		if ($this->Usuario->delete()) {
			$this->Session->setFlash(__('Usuario deleted'));
			$this->redirect(array('action' => 'index'));
		}
		$this->Session->setFlash(__('Usuario was not deleted'));
		$this->redirect(array('action' => 'index'));
	}
}
?>